ESP8266NodeMCU+MAX7219八位数码管制作联网时钟【Arduino】

您所在的位置:网站首页 ESP8266-12s wifi时钟 ESP8266NodeMCU+MAX7219八位数码管制作联网时钟【Arduino】

ESP8266NodeMCU+MAX7219八位数码管制作联网时钟【Arduino】

2024-06-12 13:08| 来源: 网络整理| 查看: 265

其实这个网上有许多教程,我自己跟着改了改就写出来了

先上源码

#include #include #include #include ESP8266WiFiMulti wifiMulti; WiFiUDP ntpUDP; NTPClient timeClient(ntpUDP, "ntp.aliyun.com"); //模块引脚定义 #define CLK D4 #define CS D3 #define DIN D2   int sl = 0,sh = 0,mintl = 0,minth = 0,hrl = 0,hrh = 0,i =0; //位写入 void Write_Max7219_byte(unsigned char DATA)          {     unsigned char i;         for(i=8;i>=1;i--)     {                         digitalWrite(CLK,LOW);           if(DATA&0X80)       {            digitalWrite(DIN,HIGH);       }       else       {            digitalWrite(DIN,LOW);       }       DATA= 10)      {         mintl = 0;         minth++;         if(minth >= 6)         {           minth = 0;           hrl++;           if(hrl >= 10)           {             hrl = 0;             hrh++;             if(hrh >= 3)             {               hrh = 0;             }             Write_Max7219(6,mintl);           }           Write_Max7219(5,hrl);                    }         Write_Max7219(4,minth);      }        Write_Max7219(3,mintl);   }   Write_Max7219(2,sh);    } Write_Max7219(1,sl); } }

这里先写高位再写低位,具体如下:

高位数据:

0x01:为第一位数码管

0x02:为第二位数码管

0x03:为第三位数码管

0x04:为第四位数码管

0x05:为第五位数码管

0x06:为第六位数码管

0x07:为第七位数码管

0x08:为第八位数码管

0x09:译码,这里的低位数据输入的二进制为1的位就是进行译码的位, 比如0xFF表示全部译码,而0x2a则是显示第2、4、6位数码管

0x0a:亮度设置,后跟的数据就是亮度值

0x0b:扫描界限,就是要显示的数码管,0x07为全部显示

0x0c:普通模式与掉电模式选择,0x00为掉电模式,0x01为普通显示模式。掉电模式下不会显示

0x0f:正常显示与测试模式选择,0x00为正常显示,0x01为测试模式,此时全部数码管亮起

低位数据:

为BCD译码模式的时候

0x00-0x09为显示的数字

0x0a到0x0f为其他的一些字符(好像是没译码的),具体请大家研究

本人初二,这是我第一次写文章,有很多不足,请大家谅解



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3